package com.ztesoft.web.baseconfig.db.dao.mapper;

import com.ztesoft.web.baseconfig.db.arg.DmSrcTableArg;
import com.ztesoft.web.baseconfig.db.po.DmSrcTablePO;

import java.math.*;
import java.util.*;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

public interface IDmSrcTableMapper {

	List<Integer> countByArg(DmSrcTableArg arg);

	List<DmSrcTablePO> selectByArg(DmSrcTableArg arg);
	
	List<DmSrcTablePO> selectSubTableBySourceDataId(Integer id);

	DmSrcTablePO selectByPrimaryKey(Integer id);
	
	DmSrcTablePO selectByDbLinkId(Integer dbLinkId);

	DmSrcTablePO selectByTableName(String tableName);

	List<DmSrcTablePO> selectByArgAndPage(DmSrcTableArg arg, RowBounds rowBound);

	int insert(DmSrcTablePO record);

	int insertSelective(DmSrcTablePO record);

	int insertBatch(@Param("list") List<DmSrcTablePO> records);

	int updateByArgSelective(@Param("record") DmSrcTablePO record, @Param("arg") DmSrcTableArg arg);
	
	int updateDToA(Integer id);
	int updateTo00X(Integer id);

	int updateByArg(@Param("record") DmSrcTablePO record, @Param("arg") DmSrcTableArg arg);

	int updateByPrimaryKeySelective(DmSrcTablePO record);

	int updateByPrimaryKey(DmSrcTablePO record);

	int deleteByArg(DmSrcTableArg arg);

	int deleteByPrimaryKey(Integer id);

	DmSrcTablePO selectBydmStrategyId(Integer dmStrategyId);
//根据Form表单里的条件返回dmPlanId,草稿箱
	List<DmSrcTablePO> selectByArgFormDraft(DmSrcTablePO record);
//根据Form表单里的条件返回dmPlanId,计划维护
	List<DmSrcTablePO> selectByArgFormMaint(DmSrcTablePO record);

}